import bisect
from typing import List

# 思路：
# 排序 ， 找到q 的位置
class Solution:
    def minOperations(self, nums: List[int], queries: List[int]) -> List[int]:
        ans = []
        # 前缀和数组
        n = len(nums)
        nums.sort()
        pre = [0] * (len(nums) + 1)
        for i in range(len(nums)):
            pre[i + 1] = pre[i] + nums[i]
        for q in queries:
            # 二分找到
            # q应该插入的位置下标
            j = bisect.bisect_left(nums, q)
            # 左边小于 q 的
            left = q * j - pre[j]
            # 右边大于q的
            right = pre[n] - pre[j] - (n - j) * q
            ans.append(left + right)
        return ans


